Calendar All Tests
Current file: /home/estudydev/workspace/eStudy_svn/web/courses/classes/class.ModulegroupConfiguration.inc.php
Legend: executed not executed dead code

  Coverage
  Classes Methods Lines
Total
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 9
0.00 %0.00%
0.00% 0 / 94
 
ModulegroupConfiguration
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 9
0.00 %0.00%
0.00% 0 / 94
 public function ModulegroupConfiguration($courseid)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 26
 public function saveConfiguration($courseid, $modules, $assrights)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 7
 public function setCourseModulegroups($courseid, $groupids)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 16
 public function setCourseAssRights($courseid, $groupids)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 11
 public function getCourseModules($courseid)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 5
 public function getCourseAssRights($courseid)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 5
 public function echoModulegroupsForm()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 19
 public function setModuleGroupsDefault()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 2
 public function echoAssistDesc()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 3


       1                 : <?php                                                                                                           
       2                 : /*--------------------------------------------------------------------------+                                   
       3                 : This file is part of eStudy.                                                                                    
       4                 : courses/classes/class.ModulegroupConfiguration.inc.php                                                          
       5                 : - Modulgruppe:  Veranstaltungen                                                                                 
       6                 : - Beschreibung: Administrieren der in eine Veranstaltung eingebundene Modulgruppen.                             
       7                 : - Version:      0.1, 03/02/04                                                                                   
       8                 : - Autor(en):    Timo Fuchs <timo.fuchs@mni.fh-giessen.de>                                                       
       9                 : +---------------------------------------------------------------------------+                                   
      10                 : This program is free software; you can redistribute it and/or                                                   
      11                 : modify it under the terms of the GNU General Public License                                                     
      12                 : as published by the Free Software Foundation; either version 2                                                  
      13                 : of the License, or any later version.                                                                           
      14                 : +---------------------------------------------------------------------------+                                   
      15                 : This program is distributed in the hope that it will be useful,                                                 
      16                 : but WITHOUT ANY WARRANTY; without even the implied warranty of                                                  
      17                 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                   
      18                 : GNU General Public License for more details.                                                                    
      19                 : You should have received a copy of the GNU General Public License                                               
      20                 : along with this program; if not, write to the Free Software                                                     
      21                 : Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.                                     
      22                 : +--------------------------------------------------------------------------*/                                   
      23                 :                                                                                                                 
      24                 : /**                                                                                                             
      25                 :  * In dieser Datei wird die Klasse ModulegroupConfiguration implementiert.                                      
      26                 :  * @package eStudy.Courses                                                                                      
      27                 :  * @version 0.1, 03/02/04                                                                                       
      28                 :  * @author Timo Fuchs <timo.fuchs@mni.fh-giessen.de>                                                            
      29                 :  */                                                                                                             
      30                 :                                                                                                                 
      31                 : /**Kontrollsteuerung für den Assistens Modus*/                                                                 
      32                 : require_once ("class.assistControll.inc.php");                                                                  
      33                 :                                                                                                                 
      34                 : /**                                                                                                             
      35                 :  * Modulgruppen-Konfiguration einer Veranstaltung.                                                              
      36                 :  * @package eStudy.Courses                                                                                      
      37                 :  * @version 0.1, 03/02/04                                                                                       
      38                 :  * @author Timo Fuchs <timo.fuchs@mni.fh-giessen.de>                                                            
      39                 :  */                                                                                                             
      40                 : class ModulegroupConfiguration {                                                                                
      41                 :                                                                                                                 
      42                 :     /**                                                                                                         
      43                 :      * ID der Veranstaltung.                                                                                    
      44                 :      *                                                                                                          
      45                 :      * @access private                                                                                          
      46                 :      * @var    integer                                                                                          
      47                 :      */                                                                                                         
      48                 :     var $courseid;                                                                                              
      49                 :                                                                                                                 
      50                 :     /**                                                                                                         
      51                 :      * Bitmaske fuer eingebundene Module.                                                                       
      52                 :      *                                                                                                          
      53                 :      * @access private                                                                                          
      54                 :      * @var    integer                                                                                          
      55                 :      */                                                                                                         
      56                 :     var $dbModulesMask;                                                                                         
      57                 :                                                                                                                 
      58                 :     /**                                                                                                         
      59                 :      * Bitmaske fuer die gesetzten Tutorenrechte auf Modulgruppen.                                              
      60                 :      *                                                                                                          
      61                 :      * @access private                                                                                          
      62                 :      * @var    integer                                                                                          
      63                 :      */                                                                                                         
      64                 :     var $dbAssRightsMask;                                                                                       
      65                 :                                                                                                                 
      66                 :     /**                                                                                                         
      67                 :      * Im Portal vorhandene Modulgruppen.                                                                       
      68                 :      *                                                                                                          
      69                 :      * @access private                                                                                          
      70                 :      * @var    mixed[] - integer 'id'        - ID   der Modulgruppe                                             
      71                 :      *                   string  'name'      - Name der Modulgruppe                                             
      72                 :      *                   integer 'choosable' - Modulgruppe auswaehlbar (1 = ja , 0 = nein)                      
      73                 :      *                   bool    'boundin'   - Modulgruppe in Veranstaltung aktiviert                           
      74                 :      *                   bool    'assright'  - Tutorenzugriff fuer Modulgruppe                                  
      75                 :      */                                                                                                         
      76                 :     var $groups;                                                                                                
      77                 :                                                                                                                 
      78                 :     /**                                                                                                         
      79                 :      * Konstruktor.                                                                                             
      80                 :      * Initialisiert die Objektvariablen.                                                                       
      81                 :      *                                                                                                          
      82                 :      * @access public                                                                                           
      83                 :      * @param  integer $courseid - ID der Veranstaltung                                                         
      84                 :      * @return bool - true,  wenn alles O.K.                                                                    
      85                 :      *                false, wenn Fehler bei Initialisierung                                                    
      86                 :      */                                                                                                         
      87                 :     function ModulegroupConfiguration($courseid) {                                                              
      88               0 :         global $db;                                                                                             
      89                 :                                                                                                                 
      90               0 :         $this->courseid        = $courseid;                                                                     
      91               0 :         $this->groups          = array();                                                                       
      92               0 :         $this->dbModulesMask   = $this->getCourseModules($this->courseid);                                      
      93               0 :         $this->dbAssRightsMask = $this->getCourseAssRights($this->courseid);                                    
      94                 :                                                                                                                 
      95               0 :         $allGroupsQ = "SELECT ID, Name, Choosable FROM modulegroups ORDER BY Name";                             
      96               0 :         $allGroups  = $db->get_results($allGroupsQ);                                                            
      97                 :                                                                                                                 
      98               0 :         if(!is_array($allGroups)) return false;                                                                 
      99                 :                                                                                                                 
     100               0 :         foreach($allGroups as $groupObj) {                                                                      
     101               0 :             $group = array();                                                                                   
     102               0 :             $group['id']        = (int)$groupObj->ID;                                                           
     103               0 :             $group['name']      = $groupObj->Name;                                                              
     104               0 :             $group['choosable'] = $groupObj->Choosable;                                                         
     105                 :                                                                                                                 
     106                 :             // Prüfen, ob Modulgruppe in Veranstaltung aktiviert.                                              
     107               0 :             if( ((int)pow(2, (int)$groupObj->ID - 2)) & $this->dbModulesMask) {                                 
     108               0 :                 $group['boundin'] = true;                                                                       
     109               0 :             } else {                                                                                            
     110               0 :                 $group['boundin'] = false;                                                                      
     111                 :             }                                                                                                   
     112                 :                                                                                                                 
     113                 :             // Prüfen, ob Tutorenrecht für Modulgruppe in Veranstaltung gesetzt.                              
     114               0 :             if( ((int)pow(2, (int)$groupObj->ID - 2)) & $this->dbAssRightsMask) {                               
     115               0 :                 $group['assright'] = true;                                                                      
     116               0 :             } else {                                                                                            
     117               0 :                 $group['assright'] = false;                                                                     
     118                 :             }                                                                                                   
     119               0 :             if($groupObj->ID > 1) { // Gruppen mit Id < 2 werden sowieso nicht berücksichtigt.                 
     120               0 :                 $this->groups[] = $group;                                                                       
     121               0 :             }                                                                                                   
     122               0 :         }                                                                                                       
     123                 :                                                                                                                 
     124               0 :         return true;                                                                                            
     125                 :     }                                                                                                           
     126                 :                                                                                                                 
     127                 :     /**                                                                                                         
     128                 :      * Speichert eine Modulgruppenkonfiguration.                                                                
     129                 :      *                                                                                                          
     130                 :      * @access protected                                                                                        
     131                 :      * @param  integer   $courseid  - ID der Veranstaltung                                                      
     132                 :      * @param  integer[] $modules   - IDs der aktivierten Modulgruppen                                          
     133                 :      * @param  integer[] $assrights - IDs der Modulgruppen, fuer die Tutorenzugriff erlaubt                     
     134                 :      * @return bool - true,  wenn Einstellungen gespeichert wurden                                              
     135                 :      *                false, falls Fehler auftrat                                                               
     136                 :      */                                                                                                         
     137                 :     function saveConfiguration($courseid, $modules, $assrights) {                                               
     138               0 :         if(!is_array($modules) || !is_array($assrights)) {                                                      
     139               0 :             return false;                                                                                       
     140                 :         }                                                                                                       
     141               0 :         if(!$this->setCourseModulegroups($courseid, $modules)) {                                                
     142               0 :             return false;                                                                                       
     143                 :         }                                                                                                       
     144               0 :         if(!$this->setCourseAssRights($courseid, $assrights)) {                                                 
     145               0 :             return false;                                                                                       
     146                 :         }                                                                                                       
     147               0 :         return true;                                                                                            
     148                 :     }                                                                                                           
     149                 :                                                                                                                 
     150                 :     /**                                                                                                         
     151                 :      * Setzt die Bitmaske fuer die aktivierten Modulgruppen einer Veranstaltung.                                
     152                 :      * Von Aenderungen betroffen ist hier DB.courses.modules .                                                  
     153                 :      *                                                                                                          
     154                 :      * @access private                                                                                          
     155                 :      * @param  integer   $courseid - ID der Veranstaltung                                                       
     156                 :      * @param  integer[] $groupids - Array mit IDs der aktivierten Modulgruppen.                                
     157                 :      * @return bool - true,  wenn Bitmaske gesetzt                                                              
     158                 :      *                false, wenn DB-Fehler auftrat                                                             
     159                 :      */                                                                                                         
     160                 :     function setCourseModulegroups($courseid, $groupids) {                                                      
     161               0 :         global $db, $EZSQL_ERROR;                                                                               
     162                 :                                                                                                                 
     163               0 :         if(!is_array($groupids)) return false;                                                                  
     164                 :                                                                                                                 
     165               0 :         $mask = 0;                                                                                              
     166               0 :         foreach($this->groups as $group) {                                                                      
     167               0 :             if(!$group['choosable']) {                                                                          
     168               0 :                 $mask = $mask | (int)pow(2, (int)$group['id'] - 2);                                             
     169               0 :             }                                                                                                   
     170               0 :         }                                                                                                       
     171               0 :         foreach($groupids as $id) {                                                                             
     172               0 :             $mask = $mask | (int)pow(2, (int)$id - 2);                                                          
     173               0 :         }                                                                                                       
     174               0 :         $errorCount = count($EZSQL_ERROR);                                                                      
     175               0 :         $db->query("UPDATE courses SET Modules='".$mask."' WHERE ID='".$courseid."'");                          
     176               0 :         if(count($EZSQL_ERROR) > $errorCount) return false;                                                     
     177                 :                                                                                                                 
     178               0 :         $this->dbModulesMask = $mask;                                                                           
     179                 :                                                                                                                 
     180               0 :         return true;                                                                                            
     181                 :     }                                                                                                           
     182                 :                                                                                                                 
     183                 :     /**                                                                                                         
     184                 :      * Setzt die Bitmaske fuer den Tutorenzugriff auf Modulgruppen einer Veranstaltung.                         
     185                 :      * Von Aenderungen betroffen ist hier DB.courses.AssRights .                                                
     186                 :      *                                                                                                          
     187                 :      * @access private                                                                                          
     188                 :      * @param  integer   $courseid - ID der Veranstaltung                                                       
     189                 :      * @param  integer[] $groupids - Array mit IDs der Modulgruppen, fuer die Tutorenzugriff erlaubt ist.       
     190                 :      * @return bool - true,  wenn Bitmaske gesetzt                                                              
     191                 :      *                false, wenn DB-Fehler auftrat                                                             
     192                 :      */                                                                                                         
     193                 :     function setCourseAssRights($courseid, $groupids) {                                                         
     194               0 :         global $db, $EZSQL_ERROR;                                                                               
     195                 :                                                                                                                 
     196               0 :         if(!is_array($groupids)) return false;                                                                  
     197                 :                                                                                                                 
     198               0 :         $mask = 0;                                                                                              
     199               0 :         foreach($groupids as $id) {                                                                             
     200               0 :             $mask = $mask | (int)pow(2, (int)$id - 2);                                                          
     201               0 :         }                                                                                                       
     202               0 :         $errorCount = count($EZSQL_ERROR);                                                                      
     203               0 :         $db->query("UPDATE courses SET AssRights='".$mask."' WHERE ID='".$courseid."'");                        
     204               0 :         if(count($EZSQL_ERROR) > $errorCount) return false;                                                     
     205                 :                                                                                                                 
     206               0 :         $this->dbAssRightsMask = $mask;                                                                         
     207                 :                                                                                                                 
     208               0 :         return true;                                                                                            
     209                 :     }                                                                                                           
     210                 :                                                                                                                 
     211                 :     /**                                                                                                         
     212                 :      * Gibt die Bitmaske fuer die in der Veranstaltung aktivierten Modulgruppen zurueck.                        
     213                 :      *                                                                                                          
     214                 :      * @access private                                                                                          
     215                 :      * @param  integer $courseid - ID der Veranstaltung                                                         
     216                 :      * @return integer - Bitmaske aus DB.courses.Modules                                                        
     217                 :      */                                                                                                         
     218                 :     function getCourseModules($courseid) {                                                                      
     219               0 :         global $db;                                                                                             
     220                 :                                                                                                                 
     221               0 :         $modules = $db->get_var("SELECT Modules FROM courses WHERE ID='".$courseid."'");                        
     222               0 :         if(!$modules) {                                                                                         
     223               0 :             return 0;                                                                                           
     224                 :         }                                                                                                       
     225                 :                                                                                                                 
     226               0 :         return (int)$modules;                                                                                   
     227                 :     }                                                                                                           
     228                 :                                                                                                                 
     229                 :     /**                                                                                                         
     230                 :      * Gibt die Bitmaske fuer Tutorenzugriff auf Modulgruppen zurueck.                                          
     231                 :      *                                                                                                          
     232                 :      * @access private                                                                                          
     233                 :      * @param  integer $courseid - ID der Veranstaltung                                                         
     234                 :      * @return integer - Bitmaske aus DB.courses.AssRights                                                      
     235                 :      */                                                                                                         
     236                 :     function getCourseAssRights($courseid) {                                                                    
     237               0 :         global $db;                                                                                             
     238                 :                                                                                                                 
     239               0 :         $assRights = $db->get_var("SELECT AssRights FROM courses WHERE ID='".$courseid."'");                    
     240               0 :         if(!$assRights) {                                                                                       
     241               0 :             return 0;                                                                                           
     242                 :         }                                                                                                       
     243                 :                                                                                                                 
     244               0 :         return (int)$assRights;                                                                                 
     245                 :     }                                                                                                           
     246                 :                                                                                                                 
     247                 :     /**                                                                                                         
     248                 :      * Gibt einen Dialog zum Konfigurieren der Modulgruppen                                                     
     249                 :      * bezueglich einer Veranstaltung aus.                                                                      
     250                 :      *                                                                                                          
     251                 :      * @access protected                                                                                        
     252                 :      * @return mixed - void, falls alles O.K.                                                                   
     253                 :      *                 bool false, falls Objektvariablen fehlerhaft initialisiert.                              
     254                 :      */                                                                                                         
     255                 :     function echoModulegroupsForm() {                                                                           
     256               0 :         if(!isset($this->courseid) || !isset($this->groups)) return false;                                      
     257                 :                                                                                                                 
     258                 :         echo "<form method='post' action='modulegroupConfig.php'>                                               
     259                 :               <table class='tableBorder'>                                                                       
     260                 :                 <tr><td class='tableHead' colspan='4'>Modulgruppen</td></tr>                                    
     261                 :                 <tr>                                                                                            
     262                 :                   <td class='tableCellHead'>Modulgruppe</td>                                                    
     263                 :                   <td class='tableCellHead'>Aktiviert</td>                                                      
     264                 :                   <td class='tableCellHead'>Tutorenzugriff</td>                                                 
     265               0 :                   <td class='tableCellHead'>".Utilities::helpCode(100000)."</td></tr>";                         
     266               0 :         foreach($this->groups as $group) {                                                                      
     267               0 :             echo "<tr><td class='tableCell'>".$group['name']."</td><td class='tableCell'>                       
     268               0 :             <p class='pForm'><input type='checkbox' name='checkedModules[]' value='".$group['id']."' ";         
     269               0 :             if(!$group['choosable']) {                                                                          
     270               0 :                 echo " checked='checked' disabled='disabled' ";                                                 
     271               0 :             } else {                                                                                            
     272               0 :                 if($group['boundin'] === true) {                                                                
     273               0 :                     echo " checked='checked' ";                                                                 
     274               0 :                 }                                                                                               
     275                 :             }                                                                                                   
     276                 :             echo "/></p></td><td class='tableCell'>                                                             
     277               0 :                    <p class='pForm'><input type='checkbox' name='checkedAssRights[]' value='".$group['id']."' ";
     278               0 :             if($group['assright'] === true) {                                                                   
     279               0 :                 echo "checked='checked'";                                                                       
     280               0 :             }                                                                                                   
     281               0 :             echo "/></p></td><td>".Utilities::helpCode(100000 + $group["id"])."</td></tr>";                     
     282               0 :         }                                                                                                       
     283                 :         echo "<tr><td class='tableCell' colspan='4' style='text-align:center;'>                                 
     284                 :                 <hr />                                                                                          
     285                 :                 <p class='pForm'><input type='reset' value='Zur&uuml;cksetzen'/></p>                            
     286                 :                 <p class='pForm'><input type='submit' name='save' value='Speichern'/></p>                       
     287                 :               </td></tr>                                                                                        
     288                 :               </table>                                                                                          
     289               0 :               </form>";                                                                                         
     290               0 :     }                                                                                                           
     291                 :                                                                                                                 
     292                 :     public function setModuleGroupsDefault() {                                                                  
     293                 :                                                                                                                 
     294               0 :         $this->setCourseModulegroups($this->courseid,0);                                                        
     295               0 :     }                                                                                                           
     296                 :                                                                                                                 
     297                 :     public function echoAssistDesc() {                                                                          
     298                 :         echo "Assistensmodus aktiviert: <br>" .                                                                 
     299               0 :             "Standardmäßig sind die Module für das Forum und Dateien & Links aktiviert <br>" .               
     300               0 :             "Wünschen sie weitere Module können sie diese hier aktivieren <br>";                              
     301               0 :     }                                                                                                           
     302                 : }                                                                                                               
     303                 :                                                                                                                 
     304                 :                                                                                                                 

Generated by PHPUnit 3.2.21 and Xdebug 2.0.3 at Thu Nov 26 17:01:15 CET 2009.